package vwg.na.vwm.rh.motorsdk.commons.entidades.dao.impl;

import java.util.List;

import org.springframework.stereotype.Repository;

import vwg.na.vwm.rh.motorsdk.commons.entidades.EstructuraEmpresa;
import vwg.na.vwm.rh.motorsdk.commons.entidades.Persona;
import vwg.na.vwm.rh.motorsdk.commons.entidades.dao.EstructuraEmpresaDAO;
import vwg.na.vwm.rh.rhmotor.modelo.dao.GenericDAO;

@Repository
public class EstructuraEmpresaDAOImpl extends GenericDAO<EstructuraEmpresa>
		implements EstructuraEmpresaDAO {

	@SuppressWarnings("unchecked")
	@Override
	public EstructuraEmpresa getEstructuraEmpresaByPersona(Persona persona) {
		List<EstructuraEmpresa> EstructuraEmpresaLista = getHibernateTemplate().find(
				"FROM EstructuraEmpresa as ee "
				+ "LEFT JOIN FETCH ee.centroCoste as ce "
				+ "LEFT JOIN FETCH ce.subArea as sa  "
				+ "LEFT JOIN FETCH sa.area as ar "
				+ "LEFT JOIN FETCH ee.sociedad as so "
				+ "LEFT JOIN FETCH ee.posicion as po WHERE ee.persona = ?", persona);
		return EstructuraEmpresaLista != null && EstructuraEmpresaLista.size() > 0 ? EstructuraEmpresaLista
				.get(0) : null;
	}

}
